From 28de1959918f4deb28a73fe5fcf60aa009e8ab90 Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Sat, 23 Mar 2024 12:37:24 -0500 Subject: [PATCH] Fix setup errors in tests --- .../src/pgwui_TEMPLATE/views/TEMPLATE.py.mak | 2 +- .../TEMPLATE/tests/test_pgwui_TEMPLATE.py.mak | 31 ++++++----- .../TEMPLATE/tests/views/test_TEMPLATE.py.mak | 51 +++++++++++++++++-- 3 files changed, 67 insertions(+), 17 deletions(-) diff --git a/src/pgwui_develop/TEMPLATE/src/pgwui_TEMPLATE/views/TEMPLATE.py.mak b/src/pgwui_develop/TEMPLATE/src/pgwui_TEMPLATE/views/TEMPLATE.py.mak index aa55bf2..247113d 100644 --- a/src/pgwui_develop/TEMPLATE/src/pgwui_TEMPLATE/views/TEMPLATE.py.mak +++ b/src/pgwui_develop/TEMPLATE/src/pgwui_TEMPLATE/views/TEMPLATE.py.mak @@ -27,7 +27,7 @@ from pgwui_common.view import auth_base_view from ${component.lower()} import exceptions as ${short_name}_ex # Useless usage of the imported exceptions to keep `make check` from failing -${short_name}_ex.ExampleOnOffAskError() +${short_name}_ex.ExampleOnOffAskError('42') log = logging.getLogger(__name__) diff --git a/src/pgwui_develop/TEMPLATE/tests/test_pgwui_TEMPLATE.py.mak b/src/pgwui_develop/TEMPLATE/tests/test_pgwui_TEMPLATE.py.mak index fd99471..e7da2d6 100644 --- a/src/pgwui_develop/TEMPLATE/tests/test_pgwui_TEMPLATE.py.mak +++ b/src/pgwui_develop/TEMPLATE/tests/test_pgwui_TEMPLATE.py.mak @@ -50,8 +50,8 @@ def test_establish_settings_default(): ${component.lower()}.establish_settings(config) new_settings = config.get_settings() - assert new_settings['pgwui']['${component.lower()}']['menu_label'] \ - == ${component.lower()}.DEFAULT_UPLOAD_MENU_LABEL + assert (new_settings['pgwui']['${component.lower()}']['menu_label'] + == ${component.lower()}.DEFAULT_UPLOAD_MENU_LABEL) @pytest.mark.unittest @@ -65,14 +65,14 @@ def test_establish_settings_no_default(): sample_settings['pgwui'] = dict() sample_settings['pgwui']['${component.lower()}'] = dict() - sample_settings['pgwui']['${component.lower()}']['menu_label'] \ - = test_menu_label + sample_settings[ + 'pgwui']['${component.lower()}']['menu_label'] = test_menu_label ${component.lower()}.establish_settings(config) new_settings = config.get_settings() - assert new_settings['pgwui']['${component.lower()}']['menu_label'] \ - == test_menu_label + assert (new_settings['pgwui']['${component.lower()}']['menu_label'] + == test_menu_label) mock_establish_settings = testing.make_mock_fixture( @@ -81,15 +81,22 @@ mock_establish_settings = testing.make_mock_fixture( # includeme() -mock_testConfig = testing.make_mock_fixture(pyramid.testing.testConfig) +mock_add_route = testing.late_instance_mock_fixture( + pyramid.testing.testConfig, 'add_route') +mock_scan = testing.late_instance_mock_fixture( + pyramid.testing.testConfig, 'scan') + @pytest.mark.unittest -def test_includeme(mock__settings, mock_testConfig): +def test_includeme(mock_establish_settings, mock_add_route, mock_scan): '''establish_settings, add_route, and scan are all called ''' - with mock_testConfig() as config: + with pyramid.testing.testConfig() as config: + mocked_add_route = mock_add_route(config) + mocked_scan = mock_scan(config) + ${component.lower()}.includeme(config) - config.establish_settings.assert_called_once() - config.add_route.assert_called_once() - config.scan.assert_called_once() + mock_establish_settings.assert_called_once() + mocked_add_route.assert_called_once() + mocked_scan.assert_called_once() diff --git a/src/pgwui_develop/TEMPLATE/tests/views/test_TEMPLATE.py.mak b/src/pgwui_develop/TEMPLATE/tests/views/test_TEMPLATE.py.mak index 0523627..e786bc3 100644 --- a/src/pgwui_develop/TEMPLATE/tests/views/test_TEMPLATE.py.mak +++ b/src/pgwui_develop/TEMPLATE/tests/views/test_TEMPLATE.py.mak @@ -1,4 +1,4 @@ -# Copyright (C) 2018, 2019, 2020, 2021 The Meme Factory, Inc. +# Copyright (C) 2018, 2019, 2020, 2021, 2024 The Meme Factory, Inc. # http://www.karlpinc.com/ # This file is part of ${component}. @@ -20,14 +20,21 @@ # Karl O. Pinc +import logging import pytest from pyramid.testing import DummyRequest from pyramid.threadlocal import get_current_request, get_current_registry from pgwui_common.__init__ import includeme as pgwui_common_includeme from pgwui_core import constants -from pgwui_upload.__init__ import includeme as pgwui_upload_includeme +from ${component.lower()}.__init__ import includeme ${'\\'} + as ${component.lower()}_includeme from ${component.lower()}.views import ${short_name} +# Useless code that utilizes (sometimes) useful imports +DummyRequest() +get_current_registry() + + # Activiate our pytest plugin pytest_plugins = ("pgwui",) @@ -48,6 +55,42 @@ CHANGED_RESPONSE = { UNCHANGED_RESPONSE = {'db_changed': False} +# Helper classes + +class MockUploadEngine(): + def __init__(self, run_result): + self.run_result = run_result + + def run(self): + return self.run_result + + +# Fixtures + +@pytest.fixture +def isolate_upload_view(monkeypatch, pyramid_request_config): + '''Keep upload_view() from calling anything + + Also, have isolate_upload_view(response) + cause UploadEngine to return the supplied "response". + ''' + def run(response): + def upload_engine(*args): + return MockUploadEngine(response) + + monkeypatch.setattr(${short_name}, 'UploadEngine', upload_engine) + + settings = pyramid_request_config.get_settings() + settings['pgwui'] = settings.get('pgwui', dict()) + # settings['pgwui'].update({'home_page': HOME_PAGE_SETTINGS}) + pgwui_common_includeme(pyramid_request_config) + ${component.lower()}_includeme(pyramid_request_config) + # settings['pgwui'].update({'urls': DEFAULT_URLS}) + pyramid_request_config.add_settings(settings) + + return run + + # Tests # ${short_name}_view() @@ -83,7 +126,7 @@ def test_upload_view_db_changed_csv(return_log_tuples): assert result == response assert ([tup[:2] for tup in log_tuples] - == [('pgwui_upload.views.upload', logging.INFO)]) + == [('${component.lower()}.views.${short_name}', logging.INFO)]) def test_upload_view_db_changed_no_csv(return_log_tuples): @@ -94,4 +137,4 @@ def test_upload_view_db_changed_no_csv(return_log_tuples): assert result == response assert ([tup[:2] for tup in log_tuples] - == [('pgwui_upload.views.upload', logging.INFO)]) + == [('${component.lower()}.views.${short_name}', logging.INFO)]) -- 2.34.1